At present, websites deliver millions of hours of video content to hundreds of millions of users each month. Some popular websites, such as YouTube™ (www.youtube.com), are entirely focused on delivering video content to users. Other popular websites, such as CNN™ (www.cnn.com), supplement traditional news and non-video content with short video clips or segments of special interest. Consumer interest in video content is so great that few popular websites have remained popular while providing no video content whatsoever.
One of the most popular types of content downloaded by users today is media content, such as video, image, and audio files. Media content comes in different formats, where some formats are more suitable for real-time media streaming than other formats. For example, HTTP Live Streaming (HLS) is a popular media streaming format because it breaks the overall stream into a sequence of small HTTP-based file downloads, each download loading one short segment of the overall stream. As the stream is played, the client device may select from a number of alternate short segments containing the same material encoded at a variety of data rates, allowing the streaming session to adapt to the available data rate. At the start of the streaming session, the client device downloads an extended M3U playlist (an .m3u8 file) containing the index data for the various segments available for this stream. Each segment can be stored as a separate .ts file compliant with the MPEG transport stream (TS) container format, and can include both video and audio streams, such as an H.264-encoded video stream and an advanced audio coding (AAC)-encoded audio stream.
On the other hand, some container formats are not well adapted for real-time streaming, especially for real-time streaming that may involve real-time adjustments of bitrate, frame resolution, and so forth. For example, the MPEG-4 Part 14 (MP4) format makes any such adjustments very difficult, because it requires that the index data (the “moov” atom) be transmitted in advance. Because the MP4 index data defines frame sizes for the entire stream, no frame can change in size after the index data is transmitted, which significantly constrains any real-time bitrate adjustments.
Notwithstanding the many websites that deliver enormous amounts of video content online to users, delivery of video content is still an expensive proposition. Delivering large video content files over the Internet tends to place a substantial processing load on the network infrastructure communicating such content as well as web servers transmitting such content to users (relative to delivering text or static image content). This burden is especially great on network infrastructures employing wireless technology, since wireless networks generally offer lower communication throughput than wired networks and wireless networks generally suffer from greater packet loss and location-dependent throughput than wired networks.
As a result of this burden, fewer users can be served by the network and web server infrastructure when serving video content relative to the number of users that can be served by the same network and web server infrastructure delivering text or still image content. Thus, companies that seek to appeal to a large user community either face increasing their content delivery capacity or risk losing users if their website seems slow due to overloaded web servers or an overloaded network infrastructure. Since customer loss can be fatal to a web business, most companies opt to increase their content delivery capacity as their customer base grows.